const NVector2<T> xx() const { return NVector2<T>(x, x); }
NVector2<T>& xy(){ return *reinterpret_cast<NVector2<T>*>(reinterpret_cast<T*>(this) + 0); }
const NVector2<T> xz() const { return NVector2<T>(x, z); }
const NVector2<T> yx() const { return NVector2<T>(y, x); }
const NVector2<T> yy() const { return NVector2<T>(y, y); }
NVector2<T>& yz(){ return *reinterpret_cast<NVector2<T>*>(reinterpret_cast<T*>(this) + 1); }
const NVector2<T> zx() const { return NVector2<T>(z, x); }
const NVector2<T> zy() const { return NVector2<T>(z, y); }
const NVector2<T> zz() const { return NVector2<T>(z, z); }
const NVector3<T> xxx() const { return NVector3<T>(x, x, x); }
const NVector3<T> xxy() const { return NVector3<T>(x, x, y); }
const NVector3<T> xxz() const { return NVector3<T>(x, x, z); }
const NVector3<T> xyx() const { return NVector3<T>(x, y, x); }
const NVector3<T> xyy() const { return NVector3<T>(x, y, y); }
NVector3<T>& xyz(){ return *this; }
const NVector3<T> xzx() const { return NVector3<T>(x, z, x); }
const NVector3<T> xzy() const { return NVector3<T>(x, z, y); }
const NVector3<T> xzz() const { return NVector3<T>(x, z, z); }
const NVector3<T> yxx() const { return NVector3<T>(y, x, x); }
const NVector3<T> yxy() const { return NVector3<T>(y, x, y); }
const NVector3<T> yxz() const { return NVector3<T>(y, x, z); }
const NVector3<T> yyx() const { return NVector3<T>(y, y, x); }
const NVector3<T> yyy() const { return NVector3<T>(y, y, y); }
const NVector3<T> yyz() const { return NVector3<T>(y, y, z); }
const NVector3<T> yzx() const { return NVector3<T>(y, z, x); }
const NVector3<T> yzy() const { return NVector3<T>(y, z, y); }
const NVector3<T> yzz() const { return NVector3<T>(y, z, z); }
const NVector3<T> zxx() const { return NVector3<T>(z, x, x); }
const NVector3<T> zxy() const { return NVector3<T>(z, x, y); }
const NVector3<T> zxz() const { return NVector3<T>(z, x, z); }
const NVector3<T> zyx() const { return NVector3<T>(z, y, x); }
const NVector3<T> zyy() const { return NVector3<T>(z, y, y); }
const NVector3<T> zyz() const { return NVector3<T>(z, y, z); }
const NVector3<T> zzx() const { return NVector3<T>(z, z, x); }
const NVector3<T> zzy() const { return NVector3<T>(z, z, y); }
const NVector3<T> zzz() const { return NVector3<T>(z, z, z); }
